<!DOCTYPE html>
<html lang="zh_CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <h1>{{ title }}</h1>
    <!--1. 需要在子组件身上定义一个自定义事件(myevent用户自定义)，然后在父组件里面设置回调函数-->
    <mycomponent1 @myevent="cb"></mycomponent1>
    <hr>
    <p>{{ data.title }}</p>
    <p>{{ data.number2 }}</p>
</div>

</body>
<script src="./lib/vue.js"></script>
<script type="text/javascript">

    /*定义一个全局组件*/
    Vue.component('mycomponent1', {

        methods: {
            clickHandler: function () {
                console.log('clickHandler');
                /*2. 在子组件里面通过 $emit 触发父组件绑定的自定义事件*/
                /*
                $emit 第一个参数：就是父组件里面定义自定义事件
                参数2 待传递的数据
                * */
                this.$emit('myevent', {title: this.title, number2: this.number2})
            }
        },

        data: function () {
            return {
                title: '我是全局组件',
                number2: 10000, // 希望把子组件的数据传递给父组件，通过回调函数处理。
            }
        },
        template: '<div><h1>{{ title }}</h1> <button @click="clickHandler">事件触发</button></div>'
    });

    /* new Vue 其实是也是一个组件，我们称之为 根组件  */
    var vm = new Vue({
        el: '#app',
        data: {
            title: 'hi vuejs!',
            number: 12,
            number1: 100,
            data: {},// 存储子组件传递的数据
        },
        methods: {
            cb: function (data) {
                console.log(data);// 子组件传递的数据
                this.data = data;
            }
        }
    });
</script>

</html>
